题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
思路
- 可能代码写得少,没啥思路;只知道中序遍历,在中间做文章,结果还不知道做啥
代码
12345678910111213141516171819202122232425TreeNode head;TreeNode realhead;public TreeNode Convert(TreeNode pRootOfTree) {if (pRootOfTree==null)return null;TreeNode node=pRootOfTree;if (node.left!=null)Convert(node.left);if (head==null){head=pRootOfTree;realhead=pRootOfTree;}else{head.right=pRootOfTree;pRootOfTree.left=head;head = pRootOfTree;}if (node.right!=null)Convert(node.right);return realhead;}
收获
- 二叉树比较常考,三种遍历方法一定要记牢;
- 画图,先想清楚,在写代码!